package com.witmore.skyline.web.controller.vo.result;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 项目表
 * </p>
 *
 * @author 豆子高
 * @since 2025-02-28
 */
@Getter
@Setter
public class ProjectResultVO implements Serializable {

    /**
     * 项目部id
     */
    private Integer id;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 项目层级（1:一级 表示是根项目  2:二级  3:三级）
     */
    private Integer projectLevel;

    /**
     * 项目父id（根项目id为org_id）
     */
    private Integer parentId;

    /**
     * 是否删除 0未删除 1已删除
     */
    private Integer isDeleted;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 设备地址
     */
    private String currentAddr;

    /**
     * 省份（从current_addr解析得出）
     */
    private String province;

    /**
     * 城市（从current_addr解析得出）
     */
    private String city;

    /**
     * 区县（从current_addr解析得出）
     */
    private String district;

    /**
     * 经度
     */
    private Double lng;

    /**
     * 纬度
     */
    private Double lat;

    private Integer orgId;

    /**
     * 项目部子节点
     */
    private List<ProjectResultVO> children = new ArrayList<>();

    /**
     * 项目部信息路径
     */
    private String projectNames;

    /**
     * 设备总数
     */
    private Integer deviceTotal;

    /**
     * 摄像头总数
     */
    private Integer cameraTotal;

    /**
     * 摄像头列表
     */
    private List<CameraResultVO> cameraResultVOS = new ArrayList<>();
}
